const express = require('express');
const router = express.Router();
const fs = require('fs');
const db = require('../db'); // 导入数据库连接池对象


// 处理图片上传请求的路由处理函数
exports.Draw_ImageUpload = (req, res) => {
    const filePath = req.file.path;

    // 读取文件内容并转换为二进制数据
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error('读取文件时出错：', err);
            res.cc('读取文件时出错。');
            return;
        }

        // 将二进制数据存储到相应的数据库表中
        const sql = 'INSERT INTO blog_draw_images (image) VALUES (?)';
        db.query(sql, [data], (err, result) => {
            if (err) {
                console.error('保存文件到数据库时出错：', err);
                res.cc('保存文件到数据库时出错。');
            } else {
                res.cc('文件上传并成功保存到数据库。', 0);
            }

            // 删除临时文件
            fs.unlink(filePath, err => {
                if (err) console.error('删除临时文件时出错：', err);
            });
        });
    });
};

exports.Write_ImageUpload = (req, res) => {
    const filePath = req.file.path;

    // 读取文件内容并转换为二进制数据
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error('读取文件时出错：', err);
            res.cc('读取文件时出错。');
            return;
        }

        // 将二进制数据存储到相应的数据库表中
        const sql = 'INSERT INTO blog_write_images (image) VALUES (?)';
        db.query(sql, [data], (err, result) => {
            if (err) {
                console.error('保存文件到数据库时出错：', err);
                res.cc('保存文件到数据库时出错。');
            } else {
                res.cc('文件上传并成功保存到数据库。', 0);
            }

            // 删除临时文件
            fs.unlink(filePath, err => {
                if (err) console.error('删除临时文件时出错：', err);
            });
        });
    });
};

exports.Code_ImageUpload = (req, res) => {
    const filePath = req.file.path;

    // 读取文件内容并转换为二进制数据
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error('读取文件时出错：', err);
            res.cc('读取文件时出错。');
            return;
        }

        // 将二进制数据存储到相应的数据库表中
        const sql = 'INSERT INTO blog_code_images (image) VALUES (?)';
        db.query(sql, [data], (err, result) => {
            if (err) {
                console.error('保存文件到数据库时出错：', err);
                res.cc('保存文件到数据库时出错。');
            } else {
                res.cc('文件上传并成功保存到数据库。', 0);
            }

            // 删除临时文件
            fs.unlink(filePath, err => {
                if (err) console.error('删除临时文件时出错：', err);
            });
        });
    });
};

exports.Life_ImageUpload = (req, res) => {
    const filePath = req.file.path;

    // 读取文件内容并转换为二进制数据
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error('读取文件时出错：', err);
            res.cc('读取文件时出错。');
            return;
        }

        // 将二进制数据存储到相应的数据库表中
        const sql = 'INSERT INTO blog_life_images (image) VALUES (?)';
        db.query(sql, [data], (err, result) => {
            if (err) {
                console.error('保存文件到数据库时出错：', err);
                res.cc('保存文件到数据库时出错。');
            } else {
                res.cc('文件上传并成功保存到数据库。', 0);
            }

            // 删除临时文件
            fs.unlink(filePath, err => {
                if (err) console.error('删除临时文件时出错：', err);
            });
        });
    });
};

// 处理图片获取请求的处理函数
exports.Draw_ImagesGetAll = (req, res) => {
    const sql = 'SELECT image FROM blog_draw_images';

    db.query(sql, (err, results) => {
        if (err) {
            console.error('查询数据库时出错：', err);
            res.cc('查询数据库时出错。');
            return;
        }

        if (results.length === 0) {
            res.cc('没有找到任何图片。');
            return;
        }

        const images = results.map(result => result.image);
        // console.log(images);
        res.send(images); // 返回所有图片的二进制数据
    });
};

exports.Write_ImagesGetAll = (req, res) => {
    const sql = 'SELECT image FROM blog_write_images';

    db.query(sql, (err, results) => {
        if (err) {
            console.error('查询数据库时出错：', err);
            res.cc('查询数据库时出错。');
            return;
        }

        if (results.length === 0) {
            res.cc('没有找到任何图片。');
            return;
        }

        const images = results.map(result => result.image);
        res.send(images);
    });
};

exports.Code_ImagesGetAll = (req, res) => {
    const sql = 'SELECT image FROM blog_code_images';

    db.query(sql, (err, results) => {
        if (err) {
            console.error('查询数据库时出错：', err);
            res.cc('查询数据库时出错。');
            return;
        }

        if (results.length === 0) {
            res.cc('没有找到任何图片。');
            return;
        }

        const images = results.map(result => result.image);
        res.send(images);
    });
};

exports.Life_ImagesGetAll = (req, res) => {
    const sql = 'SELECT image FROM blog_life_images';

    db.query(sql, (err, results) => {
        if (err) {
            console.error('查询数据库时出错：', err);
            res.cc('查询数据库时出错。');
            return;
        }

        if (results.length === 0) {
            res.cc('没有找到任何图片。');
            return;
        }

        const images = results.map(result => result.image);
        res.send(images);
    });
};